#ifndef __MYQUEUE__
#define __MYQUEUE__
#include "../_public.h"
/*
生产者消费者模型中，data存在队列中，
改.c文件用于队列的一些列操作
*/

// 队列的节点
typedef struct qNode
{
    // 增加用户信息：用户名、当前路径

    char username[20];
    char curPath[255];
    int fd; // 与客户端通信的socket
    struct qNode* next;
}qNode_st;

// 维护队列数量的结构体
typedef struct
{
    struct qNode* head; 
    struct qNode* tail;
    int size; // 
}queue_st;

// 初始化队列
void* initQueue();

// 销毁队列
int destoryQueue(queue_st* q);

// 进队列
int inQueue(queue_st* q,qNode_st* node);

// 出队列
qNode_st* deQueue(queue_st* q,qNode_st* node); // 返回值为出队列的fd

// 打印队列中的值
void myPrint(queue_st* q);

// 队列为空
bool isEmpty(queue_st* q);

// 队列满了
bool isFull(queue_st* q,int threadMaxNum);

#endif
